﻿using System;
using System.Collections.Generic;
using System.Windows.Forms;
using System.Diagnostics;

namespace SpeedTest_V2
{
    static class Program
    {
        /// <summary>
        /// Der Haupteinstiegspunkt für die Anwendung.
        /// </summary>
        [STAThread]
        static void Main()
        {
            //Application.EnableVisualStyles();
            //Application.SetCompatibleTextRenderingDefault(false);
            //Application.Run(new Form1());
            Process ThisProc = Process.GetCurrentProcess(); // Informationen über den Aktuellen Prozess einlesen 
            Process[] allProc = Process.GetProcesses();     // Informationen über alle Prozesse des Systems einlesen 
            foreach (Process pT in allProc)                 // Alle Prozesse durchlaufen 
            {
                if (pT.ProcessName == ThisProc.ProcessName) // Auf gleichnamige Prozesse prüfen 
                {
                    if (pT.Id != ThisProc.Id)               // Prüfen ob gleichnamiger Prozess eine andere PID Besitzt 
                    {                                       // Meldung ausgeben das Anwendung bereits läuft 
                        MessageBox.Show("Another instance of " + ThisProc.ProcessName + " is already Running", "Failure", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                        ThisProc.Kill();                    // Diesen Prozess beenden 
                    }
                }
            }
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Form1 frm = new Form1();
            Application.Run();
        }
    }
}